home *** CD-ROM | disk | FTP | other *** search
- $INCLUDE "REGNAMES.INC"
- CLS
-
- REM -- Adresse des EMS-Fensters -
- REG %AX,(&H41*256)
- CALL INTERRUPT &H67
- FrameSeg=REG(%BX)
- PRINT "Segment=$";HEX$(FrameSeg)
-
- REM -- 8 Seiten belegen ---------
- REG %AX,(&H43*256)
- REG %BX,8
- CALL INTERRUPT &H67
- ems=REG(%DX)
- ok=INT(REG(%AX)/256)
- IF ok<>0 THEN
- BEEP
- PRINT "Nicht genug freier EMS-Speicher !"
- GOTO ende
- END IF
- PRINT "Handle=";HEX$(ems)
-
- REM -- 6 Seiten hinzufgen ------
- REG %DX,ems
- REG %BX,6
- REG %AX,(&H51*256)
- CALL INTERRUPT &H67
- ok=INT(REG(%AX)/256)
- IF ok<>0 THEN
- BEEP
- PRINT "Nicht genug Speicher zum Anfgen !"
- GOTO ende
- END IF
-
- REM -- Speichertest -------------
- FOR x=0 TO 13
- CALL Mapping(x)
- CALL Schreibe(CHR$(65+x),CHR$(85-x))
- NEXT
- FOR x=0 TO 13
- CALL Mapping(x)
- CALL Test(CHR$(65+x),CHR$(85-x))
- NEXT
-
- free:
- REM -- Speicher freigeben -------
- REG %AX,(&H45*256)
- REG %DX,ems
- CALL INTERRUPT &H67
-
- REM -- Ende ---------------------
- ende:
- PRINT ""
- PRINT "<< Taste >>"
- END
-
- SUB Mapping(seite) SHARED
- REG %AX,(&H44*256)+0
- REG %BX,seite
- REG %DX,ems
- PRINT "Einblenden: ";seite
- mp=seite
- CALL INTERRUPT &H67
- END SUB
-
- SUB Schreibe(c1$,c2$) SHARED
- DEF SEG = FrameSeg
- c1=ASC(c1$)
- c2=ASC(c2$)
- PRINT "Beschreiben: ";CHR$(c1);" - ";CHR$(c2)
- FOR i=0 TO 400
- POKE i,c1
- NEXT
- FOR i=16000 TO 16383
- POKE i,c2
- NEXT
- END SUB
-
- SUB Test(c1$,c2$) SHARED
- DEF SEG = FrameSeg
- c1=ASC(c1$)
- c2=ASC(c2$)
- PRINT "Test"
- FOR i=0 TO 30
- IF PEEK(i)<>c1 THEN
- PRINT "FEHLER !!! Seite";mp;" c1=";chr$(c1);" is=";chr$(peek(i))
- goto ok1
- END IF
- NEXT
- ok1:
- FOR i=16350 TO 16383
- IF PEEK(i)<>c2 THEN
- PRINT "FEHLER !!! Seite";mp;" c1=";chr$(c2);" is=";chr$(peek(i))
- goto ok2
- END IF
- NEXT
- ok2:
- END SUB